package com.linwen.excise.sort;

import com.linwen.javase.MyPrint;

/**
 * 计数排序，非比较排序，统计个数，稳定排序算法；
 * 统计元素出现的个数，适用于一定范围内的排序
 * @author : linwen
 * @date : 上午1:27 2021/6/13
 */
public class _07CountSort {
    public static void main(String[] args) {
        int[] arr = new int[]{10, 12, 15, 14,14, 17, 18, 19, 11, 13};
        countSort(arr);
        MyPrint.print();
        MyPrint.print(arr);
    }

    private static void countSort(int[] arr) {
        int temp = 10;
        //计数数组
        int[] count = new int[10];
        for (int i = 0; i < arr.length; i++) {
            count[arr[i]-temp]++;
        }
        MyPrint.print(count);
        int j=0;
        for (int i = 0; i < count.length; i++) {
            while (count[i]-->0){
                arr[j] = i+temp;
                j++;
            }
        }
    }
}